package ar.edu.utn.frsf.tpae.a2014.g03.service;

import java.util.List;

import ar.edu.utn.frsf.tpae.a2014.g03.enums.EstadoPedidoEnum;
import ar.edu.utn.frsf.tpae.a2014.g03.persistence.model.Cliente;
import ar.edu.utn.frsf.tpae.a2014.g03.persistence.model.Pedido;
import ar.edu.utn.frsf.tpae.a2014.g03.service.exception.ServiceException;

/**
 * Interfaz que define las operaciones que debe proveer un servicio de
 * pedidos.
 * 
 * @author g03
 */

public interface HistorialPedidoService {

	/**
	 * Busca los pedidos realizados por un cliene que aun no fueron entregados
	 * 
	 * @param cliente
	 * 
	 */
	
	public List<Pedido> findPedidosEnCurso(Cliente cliente)throws ServiceException;
	
	/**
	 * Busca los pedidos realizados por un cliene que fueron entregados
	 * 
	 * @param cliente
	 * 
	 */
	public List<Pedido> findPedidosFinalizados(Cliente cliente)throws ServiceException;
	
	/**
	 * Obtiene pedidos,utilizando el idEstado como criterio de busqueda 
	 * @return
	 */
	public List<Pedido> findPedidosByEstado(EstadoPedidoEnum estado)
			throws ServiceException;

	/**
	 * Obtiene los pedidos asignados a un transportista que aun no fueron
	 * entregados al cliente
	 * 
	 * @param idTransportista
	 * @return
	 */
	public List<Pedido> findPedidosAsignados(Integer idTransportista)
			throws ServiceException;

}
